function result = DO_SweepModulationFreq(obj, frequencyList)
%DO_SWEEPMODULATIONFREQ Summary of this function goes here
%   Detailed explanation goes here
    % init
    monitor_fig = figure('Name', 'Sweep Modulation Frequency'); monitor_ax = axes(monitor_fig);
    result = struct('frequency', 'working_point',{}, 'calibration_data',{});

    % loop
    for expno=1:length(frequencyList)
        obj.controller.setModulationFrequency(frequencyList(expno));
        wp = obj.GET_WorkingPoint();
        [amp, err] = obj.GET_StdCalibrationSignal(frequencyList(expno));

        result(expno).frequency = frequencyList(expno);                
        result(expno).working_point = wp;
        result(expno).amplitude = amp;
        result(expno).uncertanty = err;

        obj.session.addTemporaryData(result);  % record temporary data during a long run
        plot(monitor_ax, [result.frequency], [result.amplitude], 'rd-');                
    end

    % finalize
    close(monitor_fig);
end

